package game.Screens;

import game.Config.Config.GameInput;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;



/**
 * The Screen class represents a Screen that can be drawn and updated.
 * 
 * @author Sebastian Isheden and Victor Beer
 *
 */
public abstract class Screen {
	/**
	 * This method is called when the Screen is created.
	 */
	public abstract void begin();
	/**
	 * This method is called when the Screen is removed.
	 */
	public abstract void end();
	/**
	 * This method updates the screen.
	 */
	public abstract void update(GameContainer gc, int delta);
	/**
	 * This method draws the screen.
	 */
	public abstract void draw(Graphics graphic);
	/**
	 * 
	 */
	public abstract void inputPressed(GameInput input);
	/**
	 * 
	 */
	public abstract void inputDown(GameInput input);
}
